鸟群怎么在天上飞 —— Boids | 算法考古
Craig Reynolds 于1986年制定了一套有序的动物集群运动(如鸟群、鱼群)的计算模型。该模型基于常用于计算机动画或计算机辅助设计的计算机三维几何。他将这种模拟鸟群命名为「boids」。
最简单的鸟群模型由三个运动行为组成,他们描述了每个boid个体如何根据其周围同伴的速度和位置进行移动。
分离:移动以避免过于拥挤
对齐:向群体的平均航向移动
一致性:向群体的平均位置移动
每个 boid 个体都可以得知整体的几何参数,但是“鸟群”的活动要求个体只对其附近的一小部分邻居作出反应。这个附近部分的范围由一个距离(从该个体的中心算起)和一个角度(从其飞行方向算起)决定。
个体临近范围
比这个更精细一些的行为模型在早期实践中进行过应用。其中包含预测性的障碍物躲避以及目标搜寻。这些使得 boids 可以飞过模拟环境并绕开障碍物,一个低优先级的目标搜寻可以使“鸟群”沿着事先编好的路径行进。
模拟boid集群躲避柱体障碍物 (1986)
CraigReynolds与 Symbolics Graphics 和 Whitney / Demos Production 的同事合作制作了利用boids群体模型的小短片: 《 Stanley andStellain:Breakingthe Ice 》。
(讲了鸟与鱼相爱,鸟儿冲破冰面到海里找鱼的故事
影片最早于87年 SIGGRAPH 电子剧院展出,同时在该会议上也发表了一篇关于 boids 的论文(https://www.red3d.com/cwr/papers/1987/boids.html)。88年的 SIGGRAPH 会议上也记录了一篇关于障碍物躲避的非正式论文(https://www.red3d.com/cwr/nobump/nobump.html)。
1987年开始,逐渐出现了许多行为性动画领域 —— boids 模型的应用。1992年蒂姆波顿的《蝙蝠侠归来》则是第一例。电影里有电脑模拟的蝙蝠群和企鹅群。他们是由 Symbolics 开发的 boids 软件修改过的版本制作的。
大概就是这个蝙蝠场景了
更多关于boids的内容请查看:
https://www.red3d.com/cwr/boids/
接下来介绍boids的 processing 实现与 Unity 实现的例子。
processing的自带例子位于:
openprocessing上用 flocking 模拟捕食行为的例子:
https://www.openprocessing.org/sketch/126516
https://www.openprocessing.org/sketch/162190
Unity的实现可以在 keijiro 的神仙 GitHub 上找到两个例子。
https://github.com/keijiro/Boids
里面有些Shader已经不能用了,需要手动改写。 或删掉相关文件即可运行。
点击添加 boid 个体
https://github.com/keijiro/TrailBoids
带尾巴的boids
—END—
我们的工作是探索编程和数学在艺术和设计中一切可能性,形式不限,艺术创作,跨界合作,展览展示,品牌活动等等,同时我们的使命是建设和维护中国本土创意编程和算法艺术社群,形式有开展线上教学,举办社群活动,策划举办艺术展览,挖掘发现本地社群里值得被传播的人和事通过自媒体进行传播
我们建了一个读者群
想进群和其他读者进行精神交流朋友
加客服小姐姐的微信(推送末尾)
联 系 我 们
算法艺术实验室
探索数学与编程在设计与艺术中一切之可能
用运算和美学让你变更酷
主营业务
科学艺术咨询 | 公共艺术 | 未来舞台美术 | 大数据可视化 | 设计人才猎头 | 品牌Event | 教育